package com.shujia.day15.jdgc;

public class Factory {
    /*
        简单工厂模式：
            提供一个工厂类，可以在该类中定义相关的方法，构建对应的类的对象
            其作用：提供一个标准的对象，方便调用者使用
     */
    public static Animal getAnimalObject(String animalName, String name) {
        // toLowerCase => 将字符串中的字母小写
        if ("dog".equals(animalName.toLowerCase())) {
            return new Dog(name);
        } else if ("cat".equals(animalName.toLowerCase())) {
            return new Cat(name);
        } else {
            return null;
        }
    }

}


abstract class Animal {
    public abstract void eat();
}

class Cat extends Animal {
    String name;

    public Cat(String name) {
        this.name = name;
    }

    @Override
    public void eat() {
        System.out.println("🐱爱吃🐟");
    }
}

class Dog extends Animal {
    String name;

    public Dog() {
    }

    public Dog(String name) {
        this.name = name;
    }

    @Override
    public void eat() {
        System.out.println("🐕爱吃骨头");
    }
}